1. Field of the Invention
The present invention relates to the field of data transfer. More particularly, the present invention relates to a system and method that dynamically distributes data traffic load among multiple channels to improve overall performance of the system.
2. Description of Art Related to the Invention
With the continual emergence of smaller, faster and more powerful computers, many businesses have implemented or are in the process of implementing distributed networks, such as local area networks ("LANs"). A "LAN" is a high-speed communications network which electrically couples a number of nodes together. A "node" is defined as a computer operating as a personal computer, workstation or server or any other electronic network connective device. As a result, distributed networks allow each user control over his or her own computer as well as access to other nodes coupled to the network. One well-known type of LAN is commonly referred to as an "Ethernet Network". Switches are also used in Ethernet Networks resulting in a network called a "Switched Ethernet Network".
As shown in FIG. 1, a Switched Ethernet Network 100 is a nonpriority based network which typically includes a plurality of nodes 110 which are electrically coupled to at least one server 120 normally through a plurality of client communication channels 130, a plurality of server communication channels 140 and a switching mechanism 150 having a number of ports 151 and 152 dedicated for each of the client and server communication channels 130 and 140, respectively. Server 120 is a node, loaded with software such as network application software and the like, that supports multiple server communications channels 140. Client and server communication channels 130 and 140 propagate information in parallel so that the nodes 110 and the server 120 can communicate.
Referring to FIG. 2, in a network environment, server 120 is implemented with network operating system ("NOS") software 125 such as, for example, NETWARE.TM. by Novell Corporation of Provo, Utah, running on a host processor. Of course, other NOS software may be implemented within server 120. Upon receiving requests for data from one of the plurality of nodes, NOS software 125, in operation, provides data packets to adaptive driver software 126 for transmission through one of server communication channels 140 in accordance with an IEEE 802.3 standard (ANSI/IEEE std. 802.3, 1982 first edition). Each of server communication channels 140 supports a limited bandwidth currently ranging from 10 million bits per second ("Mbps") up to approximately 100 Mbps for FastEthernet physical medium.
Referring to both FIGS. 1 and 2, in order to increase the bandwidth available for data transmission, server communication channels 140 from the server 120 may include multiple physical adapters (e.g., Network Interface Cards "NICs" 141), each assigned a unique identifier that functions as its address, which is typically referred to as a media access control ("MAC") address. These NICs 141 are controlled by adaptive driver software 126 which communicates with both NOS software 125 and NICs 141. Adaptive driver software 126 "virtualizes" these server communication channels 140 by presenting them to NOS software 125 as a single server communication channel having the collective bandwidth of the combined server communication channels 140. For example, the Switched Ethernet Network 100 would have a "virtual" server communication channel equivalent to the number of server communication channels times the bandwidth of a single server communication channel "BW.sub.scch ".
In operation, when a data packet is provided to adaptive driver software 126 for transmission, adaptive driver software 126, based on substantially predetermined parameters, select one of server communication channels 140 for use. By choosing different server communication channels 140 for different data packets, adaptive driver software 126 achieves "load balancing", a scheme where adaptive driver software 126 operates so as to distribute the data traffic load generally equally among the server communication channels 140.
Currently, Switched Ethernet Networks have been configured to operate in accordance with two types of conventional load balancing techniques. A first type of conventional load balancing technique involves adaptive driver software ascertaining a destination address of the data packet before it is transferred through one of the server communication channels. If the destination address is associated with a node that has not been assigned a server communication channel, adaptive driver software assigns that node to utilize a specific server communication channel. Thereafter, the adaptive driver software sequentially assigns a different channel to the next unassigned node until all nodes coupled to the network have been assigned substantially equally among the server communication channels. However, this technique is highly static in nature because channel assignment for the node is maintained throughout the duration of the communication session between the newly assigned node and the server. Moreover, although conventional network may achieve almost perfect load balancing if the data traffic load is evenly distributed, such situations are highly unusual in normal operation.
Another "load balancing" technique currently utilized by adaptive driver software is to assign one data packet at a time to different server communication channels in which the channel assignment is extinguished after every data packet transmission being one type of "purely dynamic" loading. Although this technique reduces disparate data traffic loads over server communication channels, it may result in a number of disadvantages. A first disadvantage is that for a "burst" data transfer (e.g., sending successive packets to a single node), there is a possibility that the data may become out of order at its destination. The reason is that the switching mechanism 150 may include first-in, first-out registers ("FIFOs") to receive data transmitted through ports 152. Over time, these FIFOs will likely be storing different amounts of data which would affect the order of data received by the destination node. A second disadvantage is that the switching mechanism would likely experience a data overflow because data is being transmitted to the destination node at a rate much greater than that supported by its client communication channels 130 coupling the node to switching mechanism 150. Both of these disadvantages result in performance degradation.
Therefore, it would be advantageous to provide a communication system and dynamic data traffic load distribution scheme which mitigates the above-identified disadvantages.